#ifndef _API_MUSIC_AUDIO_H
#define _API_MUSIC_AUDIO_H

/*
空间音效接口
注意：
1、开启空间音频，系统时钟需要切到至少48M
2、目前的空间音频只支持TWS模式的
3、spatial_audio_update_angle更新角度接口的说明：
    （1）更新角度的频率建议不要超过50Hz
    （2）参数说明：in_azimuth：方位角（范围：[0, 360)），in_elevation：俯仰角（范围：[0]）
    （3）方位角in_azimuth的0度定义为正前方，按照逆时针方向递增，即90度为正左，180度为正后方，270度为正右
*/
void spatial_audio_init(void);                                          //空间音频初始化
void spatial_audio_update_angle(short in_azimuth, short in_elevation);  //更新角度，角度制表示，详见上面的注意事项
void spatial_audio_set_state(u8 enable);                                //设置空间音频状态 0：关闭空间音频，1：开启空间音频
u8 spatial_audio_get_state(void);                                       //获取空间音频状态


/*
音乐音效接口
注意：
1、开启虚拟3D音效或虚拟3D音效，系统时钟需要切到至少60M
2、开启人声激励器音效或自动哇音音效，系统时钟需要切到至少80M
3、支持TWS和非TWS模式
4、需要在config.h文件开启对应音效的宏
5、初始化接口的BIT定义：
    BIT(0) -> V3D
    BIT(1) -> VBASS
    BIT(2) -> harmonic
    BIT(3) -> autowah
*/
enum music_audio_state_t {
    MUSIC_AUDIO_NONE,           //无
    MUSIC_AUDIO_V3D,            //虚拟3D音效模式1
    MUSIC_AUDIO_V3D_2,          //虚拟3D音效模式2
    MUSIC_AUDIO_VBASS,          //虚拟低音音效
    MUSIC_AUDIO_HARMONIC,       //人声激励器音效
    MUSIC_AUDIO_AUTOWAH,        //自动哇音音效
};

void bt_music_audio_init(u8 audio_type);                                //音乐音效初始化，参数详见上面的注意事项
bool bt_music_audio_set_state(u8 music_audio);                          //设置当前的音效，参数详见music_audio_state_t，返回设置是否成功
u8 bt_music_audio_get_state(void);                                      //获取当前的音效，参数详见music_audio_state_t

#endif // _API_MUSIC_AUDIO_H
